package com.spaceobj.chess.entity;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

@Data
@TableName("move")
public class Move {
    @TableId(type = IdType.AUTO)
    @TableField("move_id")
    private Integer moveId;

    @TableField("game_id")
    private Integer gameId;

    @TableField("player_id")
    private Integer playerId;

    @TableField("move_str")
    private String moveStr;

    @TableField("prev_board_state")
    private String prevBoardState;

    @TableField("new_board_state")
    private String newBoardState;

    @TableField("timestamp")
    private LocalDateTime timestamp;

    @TableField("move_time")
    private LocalDateTime moveTime;

    @TableField("from_x")
    private Integer fromX;

    @TableField("from_y")
    private Integer fromY;

    @TableField("to_x")
    private Integer toX;

    @TableField("to_y")
    private Integer toY;

    @TableField("piece")
    private String piece;

    @TableField("is_capture")
    private boolean isCapture;

    @TableField("captured_piece")
    private String capturedPiece;

    @TableField("move_notation")
    private String moveNotation;

    @TableField("comment")
    private String comment;

    public Integer getMoveId() {
        return moveId;
    }

    public void setMoveId(Integer moveId) {
        this.moveId = moveId;
    }

    public Integer getGameId() {
        return gameId;
    }

    public void setGameId(Integer gameId) {
        this.gameId = gameId;
    }

    public Integer getPlayerId() {
        return playerId;
    }

    public void setPlayerId(Integer playerId) {
        this.playerId = playerId;
    }

    public String getMoveStr() {
        return moveStr;
    }

    public void setMoveStr(String moveStr) {
        this.moveStr = moveStr;
    }

    public String getPrevBoardState() {
        return prevBoardState;
    }

    public void setPrevBoardState(String prevBoardState) {
        this.prevBoardState = prevBoardState;
    }

    public String getNewBoardState() {
        return newBoardState;
    }

    public void setNewBoardState(String newBoardState) {
        this.newBoardState = newBoardState;
    }

    public LocalDateTime getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(LocalDateTime timestamp) {
        this.timestamp = timestamp;
    }

    public LocalDateTime getMoveTime() {
        return moveTime;
    }

    public void setMoveTime(LocalDateTime moveTime) {
        this.moveTime = moveTime;
    }

    public Integer getFromX() {
        return fromX;
    }

    public void setFromX(Integer fromX) {
        this.fromX = fromX;
    }

    public Integer getFromY() {
        return fromY;
    }

    public void setFromY(Integer fromY) {
        this.fromY = fromY;
    }

    public Integer getToX() {
        return toX;
    }

    public void setToX(Integer toX) {
        this.toX = toX;
    }

    public Integer getToY() {
        return toY;
    }

    public void setToY(Integer toY) {
        this.toY = toY;
    }

    public String getPiece() {
        return piece;
    }

    public void setPiece(String piece) {
        this.piece = piece;
    }

    public boolean getIsCapture() {
        return isCapture;
    }

    public void setIsCapture(boolean isCapture) {
        this.isCapture = isCapture;
    }

    public String getCapturedPiece() {
        return capturedPiece;
    }

    public void setCapturedPiece(String capturedPiece) {
        this.capturedPiece = capturedPiece;
    }

    public String getMoveNotation() {
        return moveNotation;
    }

    public void setMoveNotation(String moveNotation) {
        this.moveNotation = moveNotation;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }
} 